'use strict';
/** path模块是 node.js 提供的一个核心模块(系统模块)， 用于格式化或拼接一个完整的路径
 * 
 *  path模块常用方法:
 *      path.join()         将多个字符串拼接成一个 "完整的路径"
 *      path.dirname()      返回路径中的 "文件夹" 部分
 *      path.basename()     返回路径中的 "文件" 部分
 *      path.extname()      返回路径中的 "扩展名" 部分
 *      path.normalize()    格式化路径
 *      path.parse()        解析路径：返回一个对象，包含路径中的各个部分
 */

 let path = require('path');

 let p1 = './../../../path/../a/./b.../c.html'
 // 格式化路径
console.log(path.normalize(p1));

let p2 = 'csd/day01/hello/zs.html';

console.log((path.join('code', p2)));

// __dirname 获得当前路径的绝对路径
console.log('__dirname: ' + __dirname);
// 绝对路径 join连接 第二字符串路径
console.log(path.join(__dirname,p2));

console.log('');

// 返回路径中的目录(文件夹)部分
console.log('path.dirname: ' + path.dirname(p2));
// 返回路径中的文件部分(文件名 + 扩展名 || 最后一级文件夹名)
console.log('path.basename： ' + path.basename(p2));
// 返回路径中的扩展名部分
console.log('path.extname: ' + path.extname(p2));

/**
 * root:''
 * 
 * dir(文件列表 - 路径 - 子父目录)：csd/day01/hello
 * 
 * base: 'zd.html'最后一级(是文件也可以是文件夹)
 * 
 * ext(文件扩展名): .html 
 * 👆👇
 * name(最后一级文件名)：zs
 */
console.log(path.parse(p2));
console.log('');
// path.resolve() 和 __dirname 都是返回当前路径的绝对路径，辣两者之间的差异和用处是？？？
console.log('resovle: ' + path.resolve());
console.log('__dirname: ' + __dirname);